package com.arpa.oms.service;

import com.arpa.core.web.Result;
import com.arpa.oms.domain.dto.BatchAddGoodsDTO;
import com.arpa.oms.domain.dto.SaleDto;
import com.arpa.oms.domain.dto.SaleItemDto;
import com.arpa.oms.domain.entity.SaleItem;
import com.arpa.oms.domain.vo.SaleItemVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * OMS销售单服务类
 * </p>
 *
 * @author LEO
 * @since 2020-10-22
 */
public interface ISaleItemService extends IService<SaleItem> {
    /**
     * @description
     * 查询可退销售明细单
     * @author xuyang
     * @date 2020/12/21 9:33
     * @param dto:
     **/
    List<SaleItemVO> findCanRefundItemList(SaleItemDto dto);

    /**
     * @description
     * 批量更新销售单明细信息
     * @author rfwang
     * @date 2021/8/5 9:34
     * @param dto:
     **/
    int batchUpdateItemInfo(SaleItemDto dto);

    /**
     * 批量添加商品
     * @param dto
     */
    Result batchAddGoods(BatchAddGoodsDTO dto);

    /**
     * @description
     * 查询商品关系列表
     * @author rfwang
     * @date 2021/8/12 14:00
     * @param dto:
     **/
    List<SaleItemVO> goodsRelationList(SaleItemDto dto);

    /**
     * @description
     * 汇总商品关系数量
     * @author rfwang
     * @date 2021/8/12 14:00
     * @param dto:
     **/
    SaleItemVO goodsRelationListSum(SaleItemDto dto);

    /**
     * @description
     * 保存商品关系
     * @author rfwang
     * @date 2021/8/12 16:47
     * @param dtoList:
     **/
    Result saveGoodsRelation(List<SaleItemDto> dtoList);

    /**
     * @param saleCodes:
     * @description 查询缺少商品信息的销售单号
     * @author rfwang
     * @date 2021/8/25 16:47
     **/
    List<String> getSaleCodelackGoodsInfo(List<String> saleCodes);
}
